from typing import List

from fastapi.encoders import jsonable_encoder
from sqlalchemy.orm import Session
# 注意：该导入语句本身是正确的，它用于依赖注入，为数据库操作提供会话支持。
# 如果此文件中使用了Session类型进行数据库操作，则应保留此导入。
from db.models import Food
from sqlalchemy import Any
from schemas.food import FoodSchema


class CRUDFood:
    def __init__(self):
        self.model = Food
    def getById(self,id:Any,db:Session):
        return db.query(self.model).filter(self.model.id==id).first()
    def getAll(self,db:Session)-> List[Food]:
        return db.query(self.model).all()
    def save(self,db:Session,foodSchema:FoodSchema)-> Food:
        data=jsonable_encoder(foodSchema)
        food = self.model(**data)
        db.add(food)
        db.commit()
        return food
# 单例模式
crudfood=CRUDFood()